//
//  ZNLHomeViewController.swift
//  My_Weibo
//
//  Created by 正能量 on 16/8/12.
//  Copyright © 2016年 正能量. All rights reserved.
//

import UIKit

private let ZNLHomeCell = "HomeCell"

class ZNLHomeViewController: ZNLRootViewController {
    
    private lazy var dataList = [Int]()

    override func viewDidLoad() {
        super.viewDidLoad()
        
        //我写在这里貌似也没出现 一开始加载不出现小菊花的状况
        setUpRefresh()
        
        //注册cell
        tableview.registerClass(UITableViewCell.self, forCellReuseIdentifier: ZNLHomeCell)
        
        visitorView?.setUpInfo(title: "关注一些人，回这里看看有什么惊喜")
        
        self.loadData()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        
        print("Home 的 window \(self.view.window)")

        
        if self.view.window == nil {
            
            self.dataList.removeAll()
            
            self.loadData()
        }
    
    }
    
    override func loadData() {
                        
        let defaultIndex = 100
        
        //判断是否刷新
        let ispullUp = pullUpView.isAnimating()
        
        //如果一开始没有刷新,那么刷新
        if !ispullUp {
            //开始刷新
            refresh.beginRefreshing()
        }

        //
        dispatch_async(dispatch_get_global_queue(0, 0)) { () -> Void in
            
            NSThread.sleepForTimeInterval(1.0)
            
            // 下拉刷新索引取数组的第一条数据，如果没有数据取默认值
            let pulldownIndex = ispullUp ? 0 : (self.dataList.first ?? defaultIndex)
            // 上拉刷新取数组最后一条数据
            let pullupIndex = !ispullUp ? 0 : self.dataList.last ?? 0
            
            // 模拟加载数据
            var arrayM = [Int]()
            
            if ispullUp {
                // 生成上拉刷新数据
                for i in 0..<10 {
                    arrayM.append(pullupIndex - i - 1)
                }
            } else {
                // 生成下拉刷新数据
                for i in (0..<10).reverse() {
                    arrayM.append(i + pulldownIndex + 1)
                }
            }
            
            
            if ispullUp {
                //如果是上拉刷新  添加到当前
                self.dataList += arrayM
            }
            else
            {
                self.dataList = arrayM + self.dataList
            }
            
            //主线程上更新UI 刷新数据
            dispatch_async(dispatch_get_main_queue(), { 
               
                //结束刷新
                self.refresh.endRefreshing()
                
                self.pullUpView.stopAnimating()
                
                //刷新tableview
                self.tableview.reloadData()
            })
        }
        
//        //停止刷新
//        refresh.endRefreshing()
//        tableview.reloadData()

    }

}

extension ZNLHomeViewController {
    override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return dataList.count
    }
    
    override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        
        let cell = tableview.dequeueReusableCellWithIdentifier(ZNLHomeCell, forIndexPath: indexPath)
        
        cell.textLabel?.text = "\(indexPath.row)"
        
        return cell
    }
}
